﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

//判断一个数是否为奇数
//int main()
//{
//	int num = 0;
//	scanf("%d", &num);
//	if (num % 2 == 1)
//	{
//		printf("%d是奇数\n", num);
//	}
//	else
//	{
//		printf("%d不是奇数\n", num);
//	}
//	return 0;
//}

//练习：输⼊⼀个年龄， >= 18岁就输出：成年，否则就输出：未成年
//int main()
//{
//	int age = 0;
//	while (scanf("%d", &age) != EOF)//多组输入
//	{
//		if (age >= 18)
//		{
//			printf("成年\n");
//			printf("可以谈恋爱了\n");
//		}
//		else
//		{
//			printf("未成年\n");
//			printf("你还太小了\n");
//		}
//
//	}
//	
//	return 0;
//}
////要求输⼊⼀个整数，判断输⼊的整数是0，还是正数或者负数
//int main()
//{
//	int num = 0;
//	scanf("%d", &num);
//	if (num == 0)
//		printf("输入的整数为0\n");
//	else if (num > 0)
//		printf("正数\n");
//	else
//		printf("负数\n");
//
//	return 0;
//}
//输⼊⼀个整数，如果是正数，再判断是奇数还是偶数，并输出；如果不是正数则输出：⾮正数
//int main()
//{
//	int num = 0;
//	scanf("%d", &num);
//	if (num == 0)
//		printf("输入的整数为0\n");
//	else if (num > 0)
//	{
//		if (num % 2 == 1)
//			printf("奇数\n");
//		else
//			printf("偶数\n");
//	}
//	else
//		printf("负数\n");
//
//	return 0;
//}

//以上就是嵌套if语句的语法，有了嵌套if语句，就可以完成更多复杂逻辑的判断。
//练习：
//输⼊⼀个⼈的年龄
//如果年龄 < 18岁，打印"少年"
//	如果年龄在18岁⾄44岁打印"⻘年"
//	如果年龄在45岁⾄59岁打印"中⽼年"
//	如果年龄在60岁⾄89岁打印"⽼年"
//	如果90岁以上打印"⽼寿星

//int main()
//{
//	int age = 0;
//	while (scanf("%d", &age) != EOF)
//	{
//		if (age < 18)
//			printf("少年\n");
//		else if (age <= 44)
//			printf("青年\n");
//		else if (age <= 59)
//			printf("中老年\n");
//		else if (age <= 89)
//			printf("老年\n");
//		else
//			printf("老寿星\n");
//	}
//	return 0;
//}
//练习1：使⽤条件操作符表⽰下⾯代码的逻辑
//#include <stdio.h>
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d %d", &a, &b);
//	if (a > 5)
//		b = 3;
//	else
//		b = -3;
//	printf("%d\n", b);
//	return 0;
//}
//exp1 ? exp2 : exp3
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d %d", &a, &b);
//	b=a>5?3:-3
//	printf("%d", b);
//	return 0;
//}
//练习2：使⽤条件表达式实现找两个数中较⼤值

//int main()
//{
//	int a = 0;
//	int b = 0;
//	while (scanf("%d%d", &a, &b) != EOF)
//	{
//		int max = a > b ? a : b;
//		printf("%d\n", max);
//		
//	}
//	return 0;
//}

//如果我们说⽉份是3⽉到5⽉，是春天，那使⽤代码怎么体现呢？
//int main()
//{
//	int a = 0;
//	while (scanf("%d", &a) != EOF)
//	{
//		if (a >= 3 && a <= 5)
//			printf("是春天\n");
//	}
//	return 0;
//}

//练习：闰年的判断
//输⼊⼀个年份year，判断year是否是闰年
//闰年判断的规则：
//1. 能被4整除并且不能被100整除是闰年
//2. 能被400整除是闰年
//int main()
//{
//	int year = 0;
//	while (scanf("%d", &year) != EOF)
//	{
//		if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
//			printf("%d是闰年\n",year);
//		else
//			printf("%d不是闰年\n",year
//			);
//
//	}
//
//	return 0;
//}

//阅读代码，计算代码输出的结果
//#include <stdio.h>
//int main()
//{
//	int i = 0, a = 0, b = 2, c = 3, d = 4;
//	i = a++ && ++b && d++;//a++先取a=0的值a再加1，造成短路，剩余的式子不再计算，所以b,c,d的值依然为2，3，4
//	//i = a++||++b||d++;
//	printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);//a=1,b=2,c=3,d=4
//	return 0;
//}
//if语句和switch语句的对⽐
// 练习：输⼊任意⼀个整数值，计算除3之后的余数
//利用if语句实现
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	if (n % 3 == 0)
//		printf("余数为0\n");
//	else if (n % 3 == 1)
//		printf("余数为1\n");
//	else
//		printf("余数为2\n");
//	return 0;
//}
//
//利用switch语句实现
//int main()
//{
//	int n = 0;
//	while (scanf("%d", &n) != EOF)
//	{
//		switch (n%3)
//		{
//		case 1:
//			printf("余数为1\n");
//			break;
//		case 0:
//			printf("余数为0\n");
//			break;
//		default:
//			printf("余数为2\n");
//			break;//切记每一个case完要加上break
//		}
//	}
//	return 0;
////}
//1. 输⼊1 - 5，输出的是“⼯作⽇”;
//2. 输⼊6 - 7，输出“休息⽇”

//int main()
//{
//	int day = 0;
//	while(scanf("%d", &day)!=EOF)
//	{
//		switch (day)
//		{
//		case 1:
//		case 2:
//		case 3:
//		case 4:
//		case 5:
//			printf("工作日\n");
//			break;
//		case 6:
//		case 7:
//			printf("休息日\n");
//			break;
//		default:
//			printf("输入错误\n");
//				break;
//
//		}
//	}
//	
//	return 0;
//}
//if与while的区别：如果条件都为真，if只执行1次，while无限循环
//while循环的实践
//练习：在屏幕上打印 1~10 的值
//int main()
//{
//	int i = 0;
//	while (i < 10)
//	{
//		i++;
//		printf("%d ", i);//i先加1，再打印
//	}
//	return 0;
//}
//int main()
//{
//	int i = 1;
//	while (i <= 10)
//	{
//		printf("%d ", i);//先打印，i再加1
//		i = i + 1;
//	}
//	return 0;
//}
//输⼊⼀个正的整数，逆序打印这个整数的每⼀位
//例如：
//输⼊：1234，输出：4 3 2 1
//输⼊：521，输出：1 2 5


//int main()
//{
//	int num = 0;
//	scanf("%d", &num);
//	while (num)//当最高位除完10后，数字变为0，跳出循环
//	{
//		printf("%d ", num % 10);//除以10后得到的余数，从各位开始
//		num = num / 10;//每循环一次让数字减小10倍，让十位上的数字变为个位
//	}
//
//	return 0;
//}//第一遍没做出来
//for循环的实践
//练习：在屏幕上打印1~10的值
//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 10; i++)
//		printf("%d ", i);
//	return 0;
//}

//计算1~100之间3的倍数的数字之和
//int main()
//{	
//	int i = 0;
//	int sum = 0;
//
//	for (i = 1; i <= 100; i++)
//	{
//		if (i % 3 == 0)
//		{
//			sum += i;
//		}
//
//	}
//	printf("%d ", sum);
//	return 0;
//}
//⼩⼩的优化
//如果能直接产⽣3的倍数的数字就省去了多余的循环和判断
//#include <stdio.h>
//int main()
//{
//	int i = 0;
//	int sum = 0;
//	for (i = 3; i <= 100; i += 3)//直接产⽣3的倍数
//	{
//		sum += i;
//	}
//	printf("%d\n", sum);
//	return 0;
//}
//输⼊⼀个正整数，计算这个整数是⼏位数？
//例如：
//输⼊：1234 输出：4
//输⼊：12 输出：2
//
//int main()
//{
//	int count = 0;
//	int n = 0;
//	scanf("%d", &n);
//	do
//	{
//		n = n / 10;
//		count++;
//	} while (n);
//	printf("%d", count);
//	return 0;
//}
//找出100~200之间的素数，并打印在屏幕上。
//注：素数⼜称质数，只能被1和本⾝整除的数字。

//int main()
//{
//	int i = 0;
//	int j = 0;
//
//	for (i = 100; i <= 200; i++)
//	{
//		int flg = 1;
//
//		for (j = 2; j <= i - 1; j++)
//		{
//			if (i % j == 0)
//			{
//				flg = 0;
//				break;
//			}
//		}
//		if (flg==1)
//		{
//			printf("%d ", i);
//		}
//	}
//	return 0;
//}//第一遍又没写出来，还是逻辑不够缜密
//
//#include <stdio.h>
//int main()
//{
//	int i = 0;
//	//循环产⽣100~200的数字
//	for (i = 100; i <= 200; i++)
//	{
//		//判断i是否为素数
//		//循环产⽣2~i-1之间的数字
//		int j = 0;
//		int flag = 1;//假设i是素数
//		for (j = 2; j < i; j++)
//		{
//			if (i % j == 0)
//			{
//				flag = 0;
//				break;
//			}
//		}
//		if (flag == 1)
//			printf("%d ", i);
//	}
//	return 0;
//}
//goto语句的使用
//本来 for 循环想提前退出得使⽤ break ，⼀个 break 只能跳出⼀层 for 循环，如果3层循环嵌套
//就得使⽤3个 break 才能跳出循环，所以在这种情况下我们使⽤ goto 语句就会更加的快捷。








